layui.use(['table', 'jquery', 'form', 'layer'], function () {
    let table = layui.table;
    let form = layui.form;
    let layer = layui.layer;
    let $ = layui.$;


    //分页
    table.render({
        elem: '#tbl',
        id: 'userTable',
        url: 'http://localhost:8080/user/listUser',
        method: 'get',
        toolbar: '#searchToolBar', //开启头部工具栏，并为其绑定左侧模板
        page: true,
        where: {
            role: 1,
        },
        cols: [[
            { field: 'userId', title: 'ID', sort: true},
            {
                field: 'image', title: '头像',
                templet: function (d) {
                    return ("<img src='../image/" + d.image + "' style='width:25px;height;25px;border-radius:50%'>");
                }
            }
            , { field: 'userName', title: '用户名'}
            , { field: 'realName', title: '真实姓名'}
            , { field: 'phone', title: '手机号'}
            , { field: 'sex', title: '性别'}
            , { field: 'age', title: '年龄', sort: true }
            , {
                field: 'birthday', title: '出生日期', sort: true,
                // templet: '<div>{{ Format(d.birthday,"yyyy-MM-dd")}}</div>'
            }
            , { field: 'userLevel', title: '年级' }
            , {
                field: 'status', title: '状态',
                templet: function (d) {
                    if (d.status == 1) {
                        return ("<div style='display:inline-block;background-color:#e7faf0;color:#13ce66;border:1px solid #d0f5e0;border-radius:4px;text-align:center;height:28px;line-height:26px;padding: 0 10px;'>启用</div>")
                    } if (d.status == 2) {
                        return ("<div style='display:inline-block;background-color:#ffeded;color:#ff4949;border:1px solid #ffdbdb;border-radius:4px;text-align:center;height:28px;line-height:26px;padding: 0 10px;'>禁用</div>")
                    }
                }
            },

            , { field: 'createTime', title: '注册时间'}
            , { title: '操作', toolbar: '#barDemo', width: '12%' }
        ]]

    });

    // 解决表格在排序之后没有重新渲染问题
    table.on('sort(userList)', function (obj) {
        table.reload('userTable', {
            initSort: obj
        });
    });
    table.reload('userTable', {});



    //模糊查询
    table.on('toolbar(userList)', function (obj) {
        let event = obj.event;
        switch (event) {
            case 'search':
                table.reload('userTable', {
                    method: 'get',
                    where: {
                        userName: $('#userName_vague').val(),
                        role: 1

                    },
                    page: {
                        curr: 1
                    }
                });
        }
    });



    //监听工具条，修改，删除(把状态改为3)
    table.on('tool(userList)', function (obj) {
        var data = obj.data;
        if (obj.event === 'del') {

            layer.confirm('真的删除此用户么', function (index) {
                $.get('http://localhost:8080/user/update', { 'userId': obj.data.userId, 'status': obj.data.status = 3 }, function () {
                    obj.del();
                    layer.close(index);
                })
            });
        }
        // 修改
        else if (obj.event === 'edit') {
            layer.open({
                type: 1,
                title: '学生修改信息',
                anim: 2,   // 动画
                resize: false,  // 是否允许拉伸改变宽高
                area: ['700px', '500px'], // 设置宽，高
                shadeClose: false, //点击遮罩关闭
                scrollbar: false,   // 屏蔽浏览器滚动（false: 则屏蔽）
                content: $("#frm_update"),
                success: function () {
                    $("#userName").val(data.userName);
                    $("#pass").val(data.password);
                    $("#realName").val(data.realName);
                    $("#phone").val(data.phone);
                    $("#sex").val(data.sex);
                    $("#age").val(data.age);
                    $("#birthday").val(data.birthday);
                    $("#level option").each(function () {
                        if ($(this).val() == data.userLevel) {
                            $(this).prop('selected', 'selected');
                        }
                    });

                    $("#status option").each(function () {
                        if ($(this).val() == data.status) {
                            $(this).prop('selected', 'selected');
                        }
                    });

                    layui.form.render();

                    $('#updateBnt').on('click', function (obj) {
                        if($("#realName").val()==''){
                            layer.msg("必填字段不能为空", { offset: 't', icon:5 });
                            return;
                        }
                        let form = {
                            'userId': data.userId,
                            'userName': $("#userName").val(),
                            'password': $("#pass").val(),
                            'realName': $("#realName").val(),
                            'phone': $("#phone").val(),
                            'sex': $("#sex").val(),
                            'age': $("#age").val(),
                            'birthday': $("#birthday").val(),
                            'userLevel': $("#level").val(),
                            'status': $("#status").val(),


                        }

                 
                        $.ajax({
                            url: 'http://localhost:8080/user/update',
                            type: 'post',
                            data: form,
                            success: function (vo) {
                                if (vo.code == 500) {
                                    layer.msg(vo.message, { offset: 't', icon: 2 });
                                } else if (vo.code == 200) {
                                    layer.msg("修改成功", { offset: 't', icon:1 });
                                    setTimeout(function(){
                                        location.reload();
                                    },1000);
                                    
                                }
                            }
                        });
                    });

                },
            })
        }
    });


    //日期
    layui.use(['form', 'layedit', 'laydate'], function () {
        var form = layui.form
            , layer = layui.layer
            , layedit = layui.layedit
            , laydate = layui.laydate;

        laydate.render({
            elem: '#birthday',
            theme: '#088A68',
            trigger: 'click'   //解决闪退问题
        });

    });

    layui.use('form', function () {

        $.ajax({
            url: 'http://localhost:8080/subject/selectLevelNameByDistinct',
            type: 'get',
            success: function (vo) {
                if (vo.code == 200) {
                    
                    $.each(vo.data, function (i, s) {
                        $("#level").append("<option value='" + s.levelName + "'>" + s.levelName + "</option>");
                    });
                }
                layui.form.render();
            }
        });

    });
});
// table日期转换格式
// function Format(datetime, fmt) {
//     if (parseInt(datetime) == datetime) {
//         if (datetime.length == 10) {
//             datetime = parseInt(datetime) * 1000;
//         } else if (datetime.length == 13) {
//             datetime = parseInt(datetime);
//         }
//     }
//     datetime = new Date(datetime);
//     var o = {
//         "M+": datetime.getMonth() + 1,                 //月份
//         "d+": datetime.getDate(),                    //日
//         "h+": datetime.getHours(),                   //小时
//         "m+": datetime.getMinutes(),                 //分
//         "s+": datetime.getSeconds(),                 //秒
//         "q+": Math.floor((datetime.getMonth() + 3) / 3), //季度
//         "S": datetime.getMilliseconds()             //毫秒
//     };
//     if (/(y+)/.test(fmt))
//         fmt = fmt.replace(RegExp.$1, (datetime.getFullYear() + "").substr(4 - RegExp.$1.length));
//     for (var k in o)
//         if (new RegExp("(" + k + ")").test(fmt))
//             fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
//     return fmt;
// }